<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>lesson 8</title>
</head>
<body>
    <div id="root"></div>
</body>
</html>
<script src="https://unpkg.com/vue@next"></script>
<script>
    // data & methods & computed & watch
    // computed和methods都能实现的一个功能,建议使用computed,因为有缓存
    // computed和watch都能实现的功能,建议使用computed,因为更简洁
    const app=Vue.createApp({
        data(){
            return{  
              message:'hello world',
              count:2,
              price:10,
            }
        },
        watch:{
            // price发生变化时    函数会执行
            // 修改price的值   3秒后会打印出price changed
            price(){
                setTimeout(()=>{
                    console.log('price changed')
                },3000)
            }
        },
        methods:{
            // handleClick(){
            //     alert('click')
            // }
            formmatString(string){
                return string.toUpperCase();
            },
            // 只要页面重新渲染,才会重新计算
            getTotal(){
                return Date.now();
            }
        },
        computed:{
            // 当计算属性依赖的内容发生变化时,才会重新执行计算
            total(){
                // return this.count * this.price
                return Date.now()+this.count
            }
        },
        // template:`<div @click="handleClick">{{message}}</div>`
        // template:`<div>{{formmatString(message)}}</div>`
        template:`<div>{{message}}{{total}}</div>`
    });
    const vm = app.mount('#root')
</script>